home *** CD-ROM | disk | FTP | other *** search
- Frequently Asked Questions (FAQS);faqs.409
-
-
- Sequence sequence - same as above but uses copy of data
- ObjGraph object graph - graph of objects reachable
- Unknown unknown - support for AsciiFiler
-
- available separately for most systems, ICpak 201 - Graphical User Interface
- (58 classes, more than 1100 methods)
-
- *Object*
- IntCltn
- IntOrdCltn
- PtrCltn
- PtrOrdCltn
- TransCltr
- OpaqCltr
- *Array*
- ColorArray
- ColorMap
- ShortArray
- PtrArray
- RubberLine
- EventQ
- CharString
- Quad
- RectList
- DispObject
- SolidColor
- DispText
- DispMedium
- [****] ....
- Pattern
- Cursor
- EchoBox
- Font
- Menu
- DepMenu
- AdHocMenu
- Timer
- DepObject
- SharObject
-
- available for several platforms, ICpak 301 - GRAPHpak
-
- [****]
-
-
-
- =======================
- GNU distributed classes
- =======================
-
- [****]
-
-
- =====================
- Public Domain classes
- =====================
-
- Random Class (sonata.cc.purdue.edu:/pub/next/oop/classes/Random2.0.tar.Z)
- - implements its own random number generator, supports Gaussian
- variables, die rolling, etc.
-
- Julian Date (sonata.cc.purdue.edu:/pub/next/oop/classes/Julian1.1.tar.Z)
- - implements Julian dates, conversions, etc. (NeXTSTEP)
-
- [****]
-
-
- ========================
- NeXT distributed Classes
- ========================
-
- + == only in NeXTSTEP Release 3 (may follow kit name for all objects in kit)
-
- Root Class
- ==========
- Object the root class
-
-
- Common Classes
- ==============
- Some classes of general utility, that don't belong to any kit.
-
- *Object*
- Storage object that stores a list of items (various types)
- List object that stores a list of other objects
- HashTable key-based storage object
- StreamTable used for writing sets of data to streams
- NXStringTable stores a set of strings accessible by key
-
- Application Kit (AppKit)
- ========================
- The first kit, used for implementing the framework and user interface of
- (nearly) every NeXTSTEP application. Provides an engine that handles
- the event loop, connection to the Window Server, and handles many standard
- services. Includes classes for user controls, font and color management, a
- text editor, a dynamic data link system (release 3), inter-application
- communication, and several standard panels.
-
- *Object*
- Responder abstract class for objects that respond to events
- Application an application's "engine"; handles event loop & more
- Window manages an independent drawing area on the screen
- Panel special subclass of Window
- Menu manages array of command items that can be picked
- PopUpList pop-up list of items that can be picked
- FontPanel std Panel for selecting Fonts
- PrintPanel std printing Panel:choose printer, resolution, etc
- PageLayout std page layout Panel
- SavePanel std save Panel
- OpenPanel std open Panel
- NXColorPanel std color-picker Panel
- NXHelpPanel + std help Panel
- NXDataLinkPanel + std Panel for managing dynamic data links
- View manages a drawing area within a Window
- Control abstract class for UI objects (buttons, etc)
- NXBrowser hierarchical browser of items (like a filesystem)
- Matrix manages a group of Cells (eg, a set of radio buttons)
- Form a Matrix of FormCells (text entry areas with titles)
- Button your basic push-button doodad
- TextField displays text or allows the user to edit it
- Slider slide its knob to change its value
- Scroller used for scrolling long documents
- NXColorWell used for representing a color selection
- Text std object for editing text (ascii or RTF)
- Box used to group other Views in a box
- NXSplitView used for a pair of Views that share screen space
- ScrollView manages relation between a ClipView and Scrollers
- ClipView used for View that's larger than its onscreen area
- Cell rubber-stamp class for drawing in a View
- NXBrowserCell used for the items in an NXBrowser
- SelectionCell performs some of NXBrowserCell's functionality (obs)
- ActionCell used with Controls (or a set with a Matrix)
- FormCell displays a title and a text-entry area in a Form
- ButtonCell used for drawing Buttons
- MenuCell used for drawing Menu items
- TextFieldCell used for drawing text-entry/display areas
- SliderCell used for drawing a slider bar
- Pasteboard used for cut/copy/paste and much, much, more
- NXImage convenient image-drawer; handles much nitty detail
- NXImageRep abstract class used with NXImage for specific images
- NXBitmapImageRep NXImageRep for bitmaps (for example, TIFF)
- NXEPSImageRep NXImageRep for PostScrip images
- NXCustomImageRep NXImageRep for user-defined images
- NXCachedImageRep NXImageRep for already-rendered images
- NXDataLink + represents a dynamic data link in a document
- NXDataLinkManager + manages all the data links in a document
- NXSelection + represents the linked data in a source document
- NXCursor std object for displaying various cursors
- Font object representing a PostScript font
- FontManager manages the Fonts in an application
- NXColorPicker + for creating a custom color picker in the color Panel
- NXColorList + manages a list of named colors (eg, Pantone(R))
- PrintInfo contains information about a print job
- NXSpellChecker + used to access spell-checking services
- NXSpellServer + allows 3rd party to provide a custom spell-checker
- Speaker sends inter-application messages
- Listener receives inter-application messages
- NXJournaler records and plays back events and sounds
-
- Video Class +(was in AppKit for Release 2)
- ===========
- Displays video input to a NeXTdimension board on screen.
-
- *Object*
- NXLiveVideoView displays video input to a NeXTdimension board
-
- Sound Kit
- =========
- The Sound Kit is a set of classes for managing sound in a NeXTSTEP application.
-
- *Object*
- Sound represents a single sound
- *Responder*
- *View*
- SoundView used to display and edit sounds
- SoundMeter used to indicate sound volume as it plays
- NXSoundStream + abstract class; manages a stream of sound data
- NXPlayStream + plays sound data on an NXSoundOut object
- NXRecordStream + records sound data from an NXSoundIn object
- NXSoundDevice + abstract class; represents a device (mic, speaker)
- NXSoundIn + represents sound input devices (microphones)
- NXSoundOut + represents sound output devices (speakers etc)
-
- Music Kit # (no longer maintained by NeXT)
- ==========================================
- A large kit for music synthesis. <<Should be available by ftp from CCRMA>>
- (ccrma-ftp.stanford.edu:pub/???)
-
- *Object*
- Note stores information about a musical event
- Envelope control musical attributes of Notes
- Part ordered set of Notes than can be performed
- Score set of Parts that make up a musical piece
- ScorePerformer plays each Part in a Score
- ScoreRecorder records a Score, Part by Part and Note by Note
- Orchestra manages a DSP to synthesize music
- Conductor controls the timing of a group of objects
- Instrument manages Notes in a performance
- SynthInstrument synthesizes its Notes on the DSP
- PartRecorder copies its notes onto a Part object
- FileWriter writes its notes to a file on disk
- NoteFilter modifies Notes and passes them on to other objects
- Performer abstract class; sends a sequence of notes in time
- FilePerformer performs music data from a file or stream
- ScorefilePerformer performs music data from a scorefile
- PartPerformer performs the Notes in a Part
- NoteReceiver used by Instruments to realize Notes from Performers
- NoteSender used by Performers to realize Notes on Instruments
- TuningSystem represents a musical tuning system
- SynthData represents DSP memory used in music synthesis
- Midi provides and ObjC interfact to the MIDI driver
- WaveTable represents a period of sound as a series of samples
- Samples builds WaveTable of recorded samples
- Partials builds WaveTable from sine wave components
- PatchTemplate used as part of a SynthPatch
- SynthPatch abstract class; represents a sound sythesis module
- Pluck synthesizes the sound of a plucked string
- Wave1 WaveTable synthesis; 1 table
- Wave1v WaveTable synth; 1 table with vibrato
- Wave1i WaveTable synth; 1 table with freq interpolation
- Wave1vi WaveTable synth; 1 table with both
- DBWave1v WaveTable synth; 1 table with vibrato
- DBWave1i WaveTable synth; 1 table with interpolation
- DBWave2vi WaveTable synth; 2 tables with both
- Fm1 Freq modulation synth; simple fm
- Fm1i Freq mod synth; simple fm with freq interpolation
- Fm1v Freq mod synth; simple fm with vibrato
- Fm1vi Freq mod synth; simple fm with both
- Fm2cvi Freq mod synth; Cascade fm
- Fm2cnvi Freq mod synth; Cascade fm with random mod. (noise)
- Fm2pvi Freq mod synth; Parallel fm
- Fm2pnvi Freq mod synth; Parallel fm with noise
- UnitGenerator abstract class; building blocks of DSP synthesis
- Add2UG Various types of UnitGenerators
- AllPass1UG ...
- AsympUG
- ConstantUG
- DelayUG
- DswitchtUG
- DswitchUG
- InterpUG
- Mul1add2UG
- Mul2UG
- OnepoleUG
- OnezeroUG
- OscgafUG
- OscgafiUG
- UscgUG
- Out1aUG
- Out1bUG
- Out2sumUG
- ScaleUG
- Scl1add2UG
- Scl2add2UG
- SnoiseUG
- UnoiseUG
-
- Database Kit (DBKit) +
- ======================
- Manages connections to entity-relationship database servers. The Database kit
- includes these services: communication with client-server databases, modeling
- properties (attributes and relationships) of each database, record management
- and buffering, data flow between record managers and the application user
- interface, and user interface objects for display and editing.
-
- *Object*
- DBDatabase represents a connection to a database server
- DBExpression encapsulates a database expression as an object
- DBQualifier represents cond. records must satisfy to be selected
- DBValue stores a value of an arbitrary type
- DBBinder connects database items to ObjC objects
- DBModule maps database model entities to application objects
- DBRecordStream represents a sequence of fetched database records
- DBRecordList supports random access to a seq. of records
- DBFetchGroup manages DBRecordList data with UI presentation
- DBAssocation associates a property with a destination object
- *Responder*
- *View*
- *Control*
- DBImageView displays an NXImage object in a frame
- *ScrollView*
- DBTableView spreadsheet-like view for modifying tables of data
- DBTableVector represents a field in a DBTableView
- DBFormatter abstract class for formatting data
- DBTextFormatter quickly formats read-only text data
- DBEditableFormatter formats editable text data
- DBImageFormatter formats, scales, and aligns image data
-
- Indexing Kit (IXKit) +
- ======================
- The Indexing Kit is a set of programmatic tools for managing data, especially
- the large amounts of data characteristic of information-intensive applications.
- Much as the Application Kit provides a framework for a graphical interface,
- the Indexing Kit provides a framework for data management.
-
- *Object*
- IXStore relocatable storage allocator/manager
- IXStoreFile disk-based IXStore
- IXStoreBlock "wrapper" for a single block of storage in an IXStore
- IXStoreDirectory allows access to objects in an IXStore by name
- IXBTree associative (key-based) access to data in an IXStore
- IXBTreeCursor a pointer to an item in an IXBTree
- IXPostingCursor cursor that assumes data is sets of postings (below)
- IXRecordManager manages large indexed collections of data
- IXPostingSet manages a set of postings (refs to indexed records)
- *List*
- IXPostingList lazily retrieves objects from postings
- IXFileFinder indexes and finds files with a general query language
- IXFileRecord represents a file in the filesystem
- IXAttributeParser parses text into lists of tokens
- IXAttributeReader breaks text into tokens
- IXLanguageReader abstract class; for tokenizing a specific language
- IXWeightingDomain represents frequency information about a set of text
- IXAttributeQuery processes a query against a conforming object
-
- Mach Kit +
- ==========
- The Mach Kit provides a number of classes for convenient use of Mach mutexes,
- and a number of classes used by the Distributed Objects facility.
-
- *Object*
- NXData wrapper for (void *) data
- NXLock object-oriented mutex lock
- NXConditionLock as above, but waits on a condition
- NXRecursiveLock as above, but same thread can acquire multiple times
- NXSpinLock as above, for use with short critical sections
- NXProtocolChecker restricts messaging access to remote objects
- NXInvalidationNotifier notifies clients when a connection breaks
- NXPort wrapper for a Mach port
- NXNetNameServer provides ObjC interface to NeXT's NetNameServer
-
- Distributed Objects Facility +
- ==============================
- The Distributed Objects facility allows a process to send messages to objects
- in the address space of a different process. For all practical purposes, the
- remote object exists in the sending process. Nearly any message can be sent,
- and many data types, including other objects can be sent and received
- "across the wire."
-
- NXProxy a "root" class that represents a remote object
- *Object*
- NXConnection manages a connection between remote objects
-
- Phone Kit +
- ===========
- The Phone Kit offers an easy way for a developer to connect an application to
- a telephone line, to initiate and receive calls over the line, and to transmit
- and receive data during a call. The phone line must be attached to the user's
- computer, or to a computer on the user's network, through a Hayes ISDN
- Extender(R) or an equivalent device.
-
- *Object*
- NXPhone represents a phone line connected to the computer
- NXPhoneCall represents/manages a connection over a phone line
- NXPhoneChannel represents a channel within a connection
-
- 3D Graphics Kit (3DKit) +
- =========================
- The 3D Kit uses RenderMan to create 3D scenes, much as the Application Kit
- uses the PostScript language to draw 2D graphics. It also provides for
- animation and real-time manipulation of rendered scenes.
-
- *Object*
- *NXImageRep*
- N3DRIBImageRep NXImageRep for RenderMan RIB data
- *Responder*
- *Window*
- *Panel*
- N3DRenderPanel std Panel for selecting hosts to render scene on
- *View*
- N3DCamera renders a single 3D scene
- N3DMovieCamera rederes a sequence of 3D scenes, providing animation
- N3DShape abstract class representing a single 3D "object"
- N3DLight represents a source of light in a scene
- N3DShader handles surface shading/texturing/coloring
- N3DRotator rotates/moves a 3D scene in various ways
- N3DContextManager manages rendering contexts for an application
-
- NetInfo Kit (NIKit) +
- =====================
- These are all standard panels for accessing NetInfo information. Strangely,
- most aren't subclasses of Panel.
-
- *Object*
- NIDomain represents a NetInfo domain
- NIDomainPanel std panel for selecting a NetInfo domain
- NIOpenPanel std panel for opening an item in a domain
- NISavePanel std panel for saving info for a domain
- *Responder*
- *Window*
- *Panel*
- NILoginPanel used, for example, to authorize root access to run an
- app
-
- Interface Builder Applicaton Classes (IB Classes) +
- ===================================================
- These classes allow developers to expand the functionality of the
- Interface Builder application, creating their own palettes of objects
- that can be dragged into an interface, and inspectors to set and view
- the attributes of those objects.
-
- *Object*
- IBInspector defines a custom Interface Builder inspector
- IBPalette connects a loadable palette to Interface Builder
-
- Preferences Application Classes +
- =================================
- These classes allow developers to add their own modules to the Preferences
- application.
-
- *Object*
- Layout represents a Preferences module's layout view
-
- Workspace Manager Application Classes +
- =======================================
- These classes allow developers to add their own file contents inspectors to
- the Workspace Manager application.
-
- *Object*
- WMInspector represents a Workspace contents inspector
-
-
-
- ==============================
- NeXT 3rd Party Class Libraries
- ==============================
-
- [many others - NeXT now publishes an _Object Works_ Catalogue, which
- tells of available classes]
-
- BarCodeKit - an object library for creating bar codes in PostScript and
- TIFF formats. (Hot Software, (617) 252-0088, info@hot.com)
-
- SerialPortKit - generic serial port object, modem object, specific bar
- code readers, magnetic stripe card readers and other serial
- devices. (Hot Software, (617) 252 0088, info@hot.com)
-
- GeoKit - objects that perform map rendering
- (Deltos Fleet Computing, (214) 540-2301)
-
- ChooserPalette - a selection list manager
- (Objective Technologies, (212) 227 6767)
-
- GraphPalette - tools for graphing data in custom apps
- (Objective Technologies, (212) 227 6767)
-
- MathPalette - tools for interfacing with Mathmatica
- (Objective Technologies, (212) 227 6767)
-
- SmartFieldPalette - supplies data input fields that restrict and format
- input, report errors, and notify the user of field content
- (Objective Technologies, (212) 227 6767)
-
- Serial Solutions from BenaTong - Object wrappers for the UNIX ioctls, Modem
- support and MagCard/BarCode reader support.
- (BenaTong (614) 276-7850 benatong@count0.cmhnet.org)
-
-
-
- --------------
- This compendium is doomed to always be incomplete. If you would like
- to add something to it that was left off, you can either contact me
- directly (shirley@fdr.jsc.nasa.gov, Bill Shirley) or post to the group
- comp.lang.objective-c. Contacting me directly will have better chances
- of me making the change.
- Again, thanks to all those who have helped, informed, and given feedback.
- --
- Bill Shirley
- shirley@fdr.jsc.nasa.gov
- --
- ``One lonesome body, Bill Shirley
- one lonesome song. shirley@fdr.jsc.nasa.gov
- No lonesome body,
- no lonesome song.'' - throwing muses
- Xref: bloom-picayune.mit.edu comp.lang.objective-c:1010 news.answers:4553
- Path: bloom-picayune.mit.edu!enterpoop.mit.edu!spool.mu.edu!olivea!sun-barr!cs.utexas.edu!bcm!aio!fdr!shirley
- From: shirley@fdr.uucp (Bill Shirley [CSC])
- Newsgroups: comp.lang.objective-c,news.answers
- Subject: Objective-C Frequently Asked Questions
- Summary: Answers to Frequently Asked Questions asked about the Objective-C
- programming language, an Object Oriented extension to the C.
- Please read this before posting to comp.lang.objective-c.
- Message-ID: <objc_724237201@fdr.jsc.nasa.edu>
- Date: 13 Dec 92 09:00:31 GMT
- Expires: 26 Jan 1993 09:00:01 GMT
- Sender: news@aio.jsc.nasa.gov (USENET News System)
- Followup-To: comp.lang.objective-c
- Organization: nasa-jsc
- Lines: 331
- Approved: news-answers-request@MIT.Edu
- Supersedes: <objc_721077644@fdr.jsc.nasa.edu>
-
- Archive-name: Objective-C/faq
- Last-modified: 1992/10/09
- Version: 1.0
-
-
- Answers to
- FREQUENTLY ASKED QUESTIONS
- concerning
- Objective-C
-
-
-
- Clarification: I have used the word `ObjC' for `Objective-C', the proper
- and official name for the language discussed within, throughout
- this file. Is is simply a time and space saver.
-
-
-
- Questions & Answers
- ~~~~~~~~~~~~~~~~~~~
- Q1. What is Objective-C?
-
- A1. An object oriented (OO) computer language based on the C language and
- influenced by SmallTalk. It was designed by The Stepstone Corp. (and
- is a Trademark of Stepstone) and includes many of the OO things that
- make Smalltalk the "language to learn OOP with", and many of the
- great things about C that make it highly portable and very optimizable.
- It is NOT C++.
-
-
- Q2. Who makes an Objective-C compiler, what does it cost, how do I order?
-
- A2.1 The Stepstone Corporation
- (203) 426-1875 - (800) BUY-OBJEct voice / (203) 270-0106 fax
- 75 Glen Road
- Sandy Hook, CT 06482
-
- compilers and runtime
-
- IBM RISC System/6000 w/ AIX
- Sun 3, 4, SPARCstations w/ SunOS
- HP9000/300,400,700,800 w/ HP-UX
- DEC Stations w/ ULTRIX
- Data General AViiON w/ DG/UX
- SCO UNIX SYS V
- PS/2 w/ AIX or OS/2
- PC-AT w/ MS-DOS
- VAX w/ VMS
- MIPS
- NeXT
- Macs with MPW (Mac Programmers Workshop)
-
- class libraries available for a subset of the above
-
- A2.2 NeXT, Inc.
-
- Comes bundled with the extended OS release.
- (NeXTSTEP 3.0 - $295 on CD ROM) shipped Sept 92
- (NeXTSTEP '486 - $995) intended Q4 92
-
- A2.3 GNU Project
-
- Freely available
- GNU Experimental Tape
- GCC 2 (the GNU C/C++/ObjC Compiler with many new
- features - doesn't include runtime - yet)
- prep.ai.mit.edu (18.71.0.38) pub/gnu/gcc-2.0.tar.Z
- (See sites at end of file)
-
-
-
-
- Q3. Does GNU's gcc `do' Objective-C?
-
- A3. Didn't you read the above answer: It does as of release 2.0,
- but does not initially include the runtime system required
- to use ObjC. A runtime has been completed and donated to
- the project. It is currently (Sept 92) undergoing testing
- and some rewriting.
- Reports are: On the NeXT, which has a runtime system, programs
- compiled with gcc 2.0 (as available on the net) run when linked
- to NeXT's runtime library.
- A runtime has been completed and donated to the project. It is
- currently (Sept 92) undergoing testing and some rewriting.
- A group has formed to help develop a library of Objective-C
- classes to be distributed freely by the GNU project.
-
-
- Q4. What books concerning Objective-C are available?
-
- A4.1
- Object Oriented Programming: An Evolutionary Approach
- Author: Brad J. Cox (, Andrew J. Novobilski second edition)
- Publisher: Addison-Wesley
- ISBN#: 0-201-10393-1 August, 1986
- ISBN#: 0-201-54834-8 1991
- two editions
-
- A4.2
- Objective-C: Object Oriented Programming Techniques
- Authors: Lewis J. Pinson, Richard S. Wiener
- Publisher: Addison-Wesley, 1991
- ISBN#: 0-201-50828-1
- Abstract: Includes many examples, discusses both Stepstone's
- and NeXT's versions of Objective-C, and the (minor)
- differences between the two.
-
- A4.3
- An Introduction to Object-Oriented Programming
- Author: Timothy Budd
- Publisher: Addison-Wesley
- ISBN#: 0-201-54709-0
- Abstract: An intro to the topic of OOP, as well as a comparison
- of C++, Objective-C, Smalltalk, and Object Pascal
-
- A4.4
- NeXTSTEP Programming Step 1: Object-oriented applications
- Availablility: Fall, 1992
- Authors: Simson L. Garfinkel, Michael K. Mahoney
- Publisher: Springer-Verlag, 1992 (800)SPR-INGE
- Abstract: It's updated to discuss NeXTSTEP 3.0 features
- (Project Builder, new development environment)
- but doesn't discuss 3DKit or DBKit
-
-
- Q5. What is the difference between Objective-C and C?
-
- A5. ObjC is a superset of the ANSI C standard. It is an object oriented
- language that has extensions similar to Smalltalk applied to C.
- It includes a few more key words and constructs.
- New Keywords:
- @interface
- @implementation
- @public
- @selector
- Constructs:
- [instance method: param]; <- sending a message to an instance
- Types:
- id - basically a generic pointer to an object
-
- [****************]
-
-
- Q6. What is the difference between Objective C and C++?
-
- A6. C++ has operator overloading, ObjC doesn't. Some consider this
- to be 'syntactic sugar', and it is, but it can be a quite
- handy bit of syntactic sugar.
- C++ has multiple inheritance, ObjC doesn't. There is much
- debate over the desirability and value of this. There are
- several ways to 'get around' this in ObjC.
- The run-time binding mechanism differ quite a bit in their functionality.
- (Details?? [***])
-
-
- Q7. What is the difference between NeXT's, Stepstone's and GNU's
- versions of Objective C?
-
- A7. NeXT has defined and distributed its own class libraries, which
- are very integral to the NeXTstep environment.
- NeXT also extended Stepstones definition of the language to include
- new constructs, such as protocols, which are touted to deal with
- some aspects of multiple inheritance.
- NeXT's implementation does *not* support static binding, Stepstone's
- does, and GNU's (does?/doesn't?).
- Stepstone has a standard set of class libraries that work across
- all supported machines.
- GNU gcc (C/C++/ObjC) does not have a runtime system for
- resolving message passing, or include any classes. (yet)
- The Object (root) class of NeXT's and Stepstone's are slightly
- different; there are several Object methods and runtime C
- functions that are not part of Stepstone's.
- NeXT (and GNU?) supports Categories, Stepstone doesn't.
- NeXT has a native language debugger, Stepstone and GNU don't.
- NeXT (3.0) supports Protocols and forward declarations of classes,
- Stepstone (does/n't?), GNU (does/n't?).
- [****************]
-
-
- Q8. What are some of the common problems of the language and how can
- I work around them? (forward declarations of classes, class variables)
-
- A8.1 There is no innate multiple inheritance (of course some see this as a
- benefit).
- To get around it you can create a compound class ( a class with
- instance variables that are /id/s of other objects. They can
- specifically redirect messages to any combination of the
- objects they are compounded of. (It isn't *that* much of a
- hassle and you have direct control over the inheritance
- logistics)
- Protocols address this to some extent. [***]
- [** how does Delegation fit in here? **]
-
- A8.2 ObjC has no class variables.
- You can get around this by defining a static variable in the .m
- file, and defining access methods for it. This is actually a
- more desirable way of designing a class hierarchy, because it
- allows subclasses shouldn't access superclass storage (this would
- cause the subclass to break if the superclass was reimplemented),
- and allows the subclass to override the storage (if the classes
- access all their own variables via methods)
-
- A8.3 problem X [****************]
-
-
- Q9. What class libraries are available for Objective C?
-
- A9. See the related FAQ file - _Objective C - a matter of Class_
-